/* Copyright (c) 2004-2024 Peigen.info. All rights reserved. */

package info.peigen.hotpot.business.router.facade;

import info.peigen.hotpot.business.router.facade.order.GatewayPositionCompletedCallbackOrder;
import info.peigen.hotpot.business.router.facade.order.GatewayReceiptCallbackOrder;
import info.peigen.hotpot.business.router.facade.order.GatewayTransCompletedCallbackOrder;
import info.peigen.hotpot.business.router.facade.order.GatewayWithdrawCompletedCallbackOrder;
import info.peigen.hotpot.business.router.facade.result.GatewayCallbackResult;

/**
 * <b>(GatewayNotify)</b>
 *
 * @author Peigen
 * @version 1.0.0
 * @since 2021/9/13
 */
public interface GatewayNotify {
    /**
     * 到账通知
     *
     * @param order GatewayReceiptCallbackOrder
     *
     * @return GatewayCallbackResult
     */
    GatewayCallbackResult receiptCallback(GatewayReceiptCallbackOrder order);

    /**
     * 转账完成回调
     *
     * @param order GatewayTransCompletedCallbackOrder
     *
     * @return GatewayCallbackResult
     */
    GatewayCallbackResult transCompletedCallback(GatewayTransCompletedCallbackOrder order);

    /**
     * 调拨完成回调
     *
     * @param order GatewayPositionCompletedCallbackOrder
     *
     * @return GatewayCallbackResult
     */
    GatewayCallbackResult positionCompletedCallback(GatewayPositionCompletedCallbackOrder order);

    /**
     * 提现通知
     *
     * @param order GatewayWithdrawCompletedCallbackOrder
     *
     * @return GatewayCallbackResult
     */
    GatewayCallbackResult withdrawCallback(GatewayWithdrawCompletedCallbackOrder order);
}
